package com.alei.redis.redisdemo.controller;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author ShiLei
 * @version v1.0
 * @date 2020-06-29 17:02
 */
@RestController
public class RedisSetDemoController {
    @Resource
    private JedisPool jedisPool;

    /**
     * 使用 set 集合的不可重复性 实现黑白名单
     * 通过  sismember  命令来判断某集合中是否存在对应数据
     */
    @PostMapping("testSet")
    public Object get() {
        Jedis jedis = jedisPool.getResource();
        jedis.sadd("userSet", "123", "234", "345", "456", "567", "6788");
        Boolean flag = jedis.sismember("userSet", "123");
        return flag;
    }

    /**
     * 随机展示
     * 比如我们想要在首页展示一些内容 但是由于首页空间太小 展示不开
     * 我们可以把内容放到 set 集合中 随机展示一部分 定时更换
     */
    public static void main(String[] args) {
        Jedis jedis = new Jedis("47.95.223.193", 6379);
        jedis.sadd("setKey", "k1", "k2", "k3", "k4", "k5", "k6", "k7");
        List<String> setKey = jedis.srandmember("setKey", 4);
        System.out.println(setKey);
    }
}
